#include <iostream>

#include "01_Singleton/01_singleton_impl_1.h"
#include "02_Prototype/02_prototype_impl_1.h"
#include "03_Factory/03_factory_impl_1.h"
#include "04_AbstractFactory/04_abstract_factory_impl_1.h"
#include "05_Builder/05_builder_impl_1.h"
#include "06_Proxy/06_proxy_impl_1.h"
#include "07_Adapter/07_adapter_impl_1.h"
#include "08_Bridge/08_bridge_impl_1.h"
#include "08_Bridge/08_bridge_impl_2.h"
#include "09_Decorator/09_decorator_impl_1.h"
#include "10_Facade/10_ facade_impl_1.h"
#include "11_Flyweight/11_flyweight_impl_1.h"
#include "12_Composite/12_composite_impl_1.h"
#include "12_Composite/12_composite_impl_2.h"
#include "13_TemplateMethod/13_template_method_impl_1.h"
#include "14_Strategy/14_strategy_impl_1.h"
#include "15_Command/15_command_impl_1.h"
#include "15_Command/15_command_impl_2.h"
#include "16_Chain_of_Responsibility/16_chain_of_responsibility_impl_1.h"
#include "17_State/17_state_impl_1.h"
#include "18_Observer/18_observer_impl_1.h"
#include "19_Mediator/19_mediator_impl_1.h"
#include "21_Visitor/21_visitor_impl_1.h"
#include "22_Memento/22_memento_impl_1.h"
#include "23_Interpreter/23_interpreter_impl_1.h"

int main(int argc, char** argv) 
{
    Test_02_prototype_impl_1();
    Test_03_factory_impl_1();
    Test_04_abstract_factory_impl_1();
    Test_05_builder_impl_1();
    Test_06_proxy_impl_1();
    Test_07_adapter_impl_1();
    Test_08_bridge_impl_1();
    Test_08_bridge_impl_2();
    Test_09_decorator_impl_1();
    Test_10_facade_impl_1();
    Test_11_flyweight_impl_1();
    Test_12_composite_impl_1();
    Test_12_composite_impl_2();
    Test_13_template_method_impl_1();
    Test_14_strategy_impl_1();
    Test_15_command_impl_1();
    Test_15_command_impl_2();
    Test_16_chain_of_responsibility_impl_1();
    Test_17_state_impl_1();
    Test_18_observer_impl_1();
    Test_19_mediator_impl_1();
    Test_21_visitor_impl_1();
    Test_22_memento_impl_1();
    Test_23_visitor_impl_1();
    return 0;
}